var classesId = 0;
$(function () {
    //初始化专业搜索条件
    $.initSubject({
        element:'subject-box',
        confirmBtn:false,
        removeBtn: false,
        style:false,
        notMultiple:true,
        classText:'form-control mb10',
        width:100,
        selectCallback:function(subjectIds){
            $("#subjectIds").val(subjectIds);
        }
    });

    listClasses(1);
    $('body').on('click', '#btn1, #btn2', function () { // 搜索
        listClasses(1);
    }).on('click', '#publishBatch', function () { // 批量恢复
        icModale(2, '确认批量恢复选中的班级', '', function () {
            var checked = $('input[name=id]:checked');
            updateClassesStatus(getChecked(1,checked), 1);
        });
    }).on('click', '#frozenBatch', function () { // 批量停班
        icModale(2, '确认批量禁用选中的班级', '', function () {
            var checked = $('input[name=id]:checked');
            updateClassesStatus(getChecked(2,checked), 2);
        });
    }).on('click', 'i.fa-male', function () { // 分配班主任
        selectHeadmaster(this);
    }).on('click', 'i.fa-unlock-alt', function () { // 单个停班
        var ids = $(this).parents('tr').data('id');
        icModale(2, '确认停用选中的班级', '', function () {
            updateClassesStatus(ids, 2);
        });
    }).on('click', 'i.fa-history', function () { // 单个恢复
        var ids = $(this).parents('tr').data('id');
        icModale(2, '确认恢复选中的班级', '', function () {
            updateClassesStatus(ids, 1);
        });
    });

    /**
     * 选择班主任
     * @param obj
     */
    function selectHeadmaster(obj) {
        classesId = $(obj).parents('tr').data('id');
        selectTeacher('checkbox','','selectTeacherCallback','2');
    }

    /**
     * 更新班级状态
     * @param ids
     * @param status 1.正常 2.停班
     */
    function updateClassesStatus(ids, status) {
        if (!ids) {
            icModale(0, '请选择要操作的班级');
            return;
        }
        if(ids=='-1'){
            if(status==2){
                icModale(0, '所选班级已停班,操作无效');
                return;
            }else{
                icModale(0, '所选班级正常,操作无效');
                return;
            }
        }
        $.ajax({
            url: baseloaction + '/admin/classes/updateClassesStatus',
            data: {'ids': ids, 'status': status},
            dataType: 'json',
            type: 'post',
            success: function (response) {
                icModale(0, response.message);
                if (response.success) {
                    var array = (ids + "").split(",");
                    array.forEach(function (value) {
                        updatePage(value, status);
                    });
                }
            },
            error: function () {
                icModale(0, '系统繁忙，请稍候再试');
            }
        });
    }

    /**
     * 更新页面
     * @param id 班级id
     * @param status 1.默认 2.发布 3.禁用 4.删除
     */
    function updatePage(id, status) {
        var tr = $('tr[data-id=' + id + ']');
        switch (status) {
            case 1:
                tr.find('i.fa-arrow-up, i.fa-history').attr('class', 'fa fa-unlock-alt').parent('a').attr('data-original-title', '停班');
                tr.find('td[data-status]').html('<span class="label label-info">正常</span>');
                break;
            case 2:
                if (tr.find('i.fa-unlock-alt').length > 0) {
                    tr.find('i.fa-unlock-alt').attr('class', 'fa fa-history').parent('a').attr('data-original-title', '恢复');
                    tr.find('td[data-status]').html('<span class="label label-danger">停班</span>');
                }
                break;
        }
    }

});

/**
 * 选择老师回调
 * @param teacherList
 */
function selectTeacherCallback(teacherList) {
    var memberIds = teacherList.map(function (v) {
        return v.id;
    }).join(',');
    saveMember(classesId, memberIds, function(entity) {
        entity = ',' + entity.memberId + ',';
        var td = $('#classes-member'+classesId);
        td.find('span[data-empty]').remove();
        var html = td.html();
        var append = teacherList.map(function(v) {
            if (entity.indexOf(',' + v.id + ',') > -1) {
                return v.teacherName;
            }
        }).join('&nbsp;&nbsp;');
        td.html(html + append);
        classesId = 0;
    });
}

/**
 * 保存班级的用户数据
 * @param classesId 班级ID
 * @param memberIds 会员ID串
 * @param callback 回调方法
 */
function saveMember(classesId, memberIds, callback) {
    $.ajax({
        url: baseloaction + '/admin/classes/member/saveMemberBatch',
        data: {
            'classesId': classesId,
            'memberIds': memberIds,
            'identity': 3
        },
        dataType: 'json',
        success: function (response) {
            icModale(0, response.message);
            if (response.success) {
                if ($.isFunction(callback)) {
                    callback(response.entity);
                }
            }
        }
    })
}

/**
 * 加载班级数据
 * @param pageNo
 */
function listClasses(pageNo) {
    var params = $('#search-form').serializeJSON();
    params = JSON.stringify(params);
    var obj = {
        url: baseloaction + '/admin/classes/ajaxClassesListPage',//请求URL
        contextId: 'oc-ibox-content',//响应内容页面设置内容ID
        params: params,//请求参数
        pageNo: pageNo,//页码
        pageCall: listClasses, //分页回调加载数据(点击上下页时调用,该方法也在加载页面完成时调用)
        selectAllId: 'all-select',        //全选框ID
        callback: function () {
            $('#count').html(total);
        }
    };
    ajaxGetListData(obj);
}